Computer operating systems are resident on nearly every computer and are typically required to run application software. Certain data processing jobs require large amounts of mathematical processing and specialized digital signal processing algorithms. Processing hardware units known as digital signal processors (DSPs) and software applications known as real-time programs or real-time applications have been developed to handle such jobs. Specialized operating systems, known as real-time operating systems (RTOSs), have been developed to facilitate the development of real-time applications for DSPs. An example of such an RTOS is described in U.S. Pat. No. 5,392,448.
The challenges faced by developers of real-time programs include challenges relating to program verification and troubleshooting. Program verification and trouble shooting are referred to generally as “debugging.” When debugging a real-time program, the developer typically uses a separate host system, such as a personal computer (PC), to retrieve data from the DSP repeatedly during execution of the real-time program to track changes over time. The data retrieved by the developer typically includes values from numerous program variables, timing parameters, system stacks, etc. The process of acquiring data to debug a real-time program is known as real-time analysis.
Since real-time programs typically perform jobs requiring real-time response, it is important for the real-time analysis to interfere as little as possible with the operations of the real-time program being analyzed. For example, the data to be examined should be acquired while the application is running, with minimal intrusion on the system. Intrusion may be in terms of space, in that the techniques for debugging the program may take up memory space, or in terms of time, in that the steps required for debugging the program may consume cycles in the DSP's central processing unit (i.e., the CPU core). A disadvantage associated with traditional tools for real-time analysis is that they interfere with the programs being analyzed by consuming cycles in the CPU core and occupy system memory space.
In response to the need for more effective means for performing real-time analysis, Texas Instruments Incorporated has designed certain processors to include special hardware known as embedded debug components. For example, U.S. Pat. No. 6,785,850 describes an example DSP with debug components which allow the DSP to perform functions for real-time analysis without consuming cycles in the CPU core or memory space needed for application programs. Embedded debug components may also be called embedded real-time analysis components or embedded emulation components (EECs). They may also be simply called debug components.
DSPs that feature embedded debug components can be debugged much more effectively than DSPs without embedded debug components, since embedded debug components reduce or eliminate interference between the real-time analysis functions and the application programs executing on the DSP. Embedded debug components thus help developers overcome some of the challenges associated with designing and verifying real-time programs for processors such as DSPs. As recognized by the present invention, however, additional benefits could be realized by further developing technologies for using embedded debug components in processors such as DSPs.